Data

I started out by downloading all the advanced passing data from https://stats.nba.com/teams/passing/. Unfortunately this only goes back 6 years, so I am going to have to look at assist data as well. The NBA has been counting assists since the 1940s, but these data are much more subjective than counting passes made. Whether a pass leads to a basket is entirely up to the scorekeepers’ judgement, and there have been some famously questionable passes that were credited with an assist but probably should not have counted:

Passing Data Summary

W (mean (SD)) Passes.Made (mean (SD)) Passes.Received (mean (SD)) Ast (mean (SD)) Secondary.Ast (mean (SD)) Potential.Ast (mean (SD)) Ast.Pts.Created (mean (SD))
Atlanta Hawks 40.33 (13.06) 25963.33 (828.32) 25963.00 (828.98) 2034.00 (88.84) 263.00 (46.35) 3998.33 (184.07) 5059.67 (245.15)
Boston Celtics 44.33 (10.54) 25005.83 (981.29) 25004.50 (981.30) 1947.00 (167.38) 246.33 (45.57) 3896.17 (303.58) 4834.83 (440.41)
Brooklyn Nets 31.83 (10.46) 24456.67 (1381.55) 24456.17 (1381.91) 1802.00 (110.69) 216.50 (13.98) 3713.83 (94.45) 4537.67 (272.43)
Charlotte Bobcats 42.00 (NA) 26080.00 (NA) 26080.00 (NA) 1765.00 (NA) 249.00 (NA) 3696.00 (NA) 4300.00 (NA)
Charlotte Hornets 38.40 (5.77) 23954.00 (614.01) 23952.20 (615.09) 1799.60 (102.48) 258.80 (19.99) 3638.00 (238.56) 4548.40 (355.92)
Chicago Bulls 38.33 (11.36) 24836.17 (987.02) 24835.17 (987.50) 1843.83 (55.76) 224.00 (51.56) 3722.50 (313.23) 4548.50 (159.57)
Cleveland Cavaliers 43.83 (14.70) 23392.50 (816.93) 23347.67 (828.94) 1811.50 (82.46) 243.83 (48.50) 3528.17 (188.56) 4593.17 (305.88)
Dallas Mavericks 38.33 (10.37) 25387.33 (996.13) 25386.67 (996.23) 1841.00 (92.83) 251.00 (29.43) 3754.33 (187.15) 4650.33 (185.40)
Denver Nuggets 39.67 (8.91) 23590.33 (1685.63) 23544.83 (1623.96) 1971.33 (174.08) 237.67 (36.22) 3856.33 (131.71) 4890.67 (371.33)
Detroit Pistons 37.00 (5.62) 22949.50 (1586.45) 22948.83 (1586.68) 1754.00 (99.25) 206.67 (28.30) 3573.67 (88.08) 4366.67 (233.98)
Golden State Warriors 62.00 (8.44) 25030.17 (2637.65) 24979.00 (2612.71) 2302.83 (217.14) 320.83 (60.24) 4215.83 (341.99) 5657.83 (544.78)
Houston Rockets 53.83 (7.65) 22465.33 (1730.14) 22464.67 (1730.19) 1824.83 (123.50) 210.67 (19.96) 3718.50 (282.24) 4679.83 (328.04)
Indiana Pacers 46.17 (6.15) 24636.50 (809.49) 24635.50 (809.00) 1819.00 (163.48) 236.83 (37.58) 3756.17 (174.23) 4469.00 (346.21)
LA Clippers 48.50 (4.80) 24363.75 (579.51) 24362.75 (579.55) 1880.75 (61.85) 232.25 (9.39) 3469.50 (232.51) 4645.75 (176.88)
Los Angeles Clippers 56.50 (0.71) 24539.50 (610.23) 24537.50 (610.23) 2023.50 (10.61) 332.50 (3.54) 3993.50 (53.03) 5024.00 (36.77)
Los Angeles Lakers 27.17 (7.76) 23217.50 (1067.20) 23215.67 (1067.21) 1826.67 (230.63) 202.17 (52.30) 3658.17 (323.47) 4481.17 (535.18)
Memphis Grizzlies 40.83 (11.89) 25676.17 (859.20) 25675.17 (858.84) 1790.00 (90.99) 275.67 (29.46) 3704.17 (123.62) 4371.50 (236.01)
Miami Heat 43.50 (6.53) 24276.33 (577.63) 24275.00 (577.92) 1789.17 (135.82) 240.00 (42.55) 3713.17 (124.13) 4486.17 (343.32)
Milwaukee Bucks 39.00 (14.75) 23836.33 (1058.14) 23835.33 (1058.56) 1924.00 (131.88) 243.17 (16.87) 3747.00 (163.20) 4715.00 (388.58)
Minnesota Timberwolves 33.17 (10.61) 23528.50 (801.05) 23527.50 (801.32) 1907.83 (93.49) 225.33 (21.48) 3783.83 (305.62) 4670.67 (270.69)
New Orleans Pelicans 37.33 (7.31) 23897.83 (1382.52) 23896.17 (1381.58) 1941.50 (208.37) 189.83 (45.18) 3700.67 (179.94) 4773.17 (433.64)
New York Knicks 27.00 (8.27) 26131.33 (2455.30) 26130.33 (2455.82) 1725.83 (99.01) 222.83 (18.38) 3676.17 (264.09) 4259.17 (173.54)
Oklahoma City Thunder 50.33 (5.43) 20943.67 (903.51) 20942.17 (903.51) 1781.67 (91.78) 173.83 (14.19) 3633.50 (144.54) 4400.83 (221.17)
Orlando Magic 29.50 (6.69) 23672.67 (807.24) 23671.83 (807.11) 1853.00 (134.81) 225.33 (28.70) 3847.17 (182.96) 4532.17 (342.47)
Philadelphia 76ers 29.67 (17.85) 26818.17 (1494.89) 26817.17 (1493.63) 1928.00 (220.61) 224.33 (48.27) 3976.83 (162.87) 4828.33 (500.07)
Phoenix Suns 28.83 (11.81) 24133.50 (986.88) 24131.83 (987.50) 1699.00 (144.90) 190.33 (27.17) 3614.33 (153.85) 4237.67 (277.96)
Portland Trail Blazers 48.67 (5.16) 23165.67 (690.48) 23122.33 (703.77) 1778.33 (112.40) 227.50 (39.43) 3650.50 (254.89) 4462.33 (285.40)
Sacramento Kings 31.33 (4.41) 23959.00 (1732.21) 23957.50 (1730.95) 1812.50 (205.31) 197.00 (44.14) 3622.50 (282.87) 4441.00 (515.66)
San Antonio Spurs 56.67 (8.07) 26086.83 (1758.87) 26086.50 (1758.34) 1982.33 (68.76) 312.83 (37.49) 3696.83 (250.39) 4846.33 (196.89)
Toronto Raptors 53.00 (5.02) 23736.67 (1098.70) 23736.33 (1098.86) 1752.17 (242.45) 238.67 (51.63) 3465.17 (292.53) 4403.67 (546.03)
Utah Jazz 42.00 (9.90) 27011.67 (1887.76) 27011.33 (1888.15) 1742.67 (205.47) 232.33 (38.22) 3710.17 (183.16) 4424.67 (482.74)
Washington Wizards 42.33 (6.19) 23963.50 (1245.55) 23963.00 (1245.80) 2003.17 (84.49) 249.67 (24.30) 3920.17 (101.43) 4929.17 (217.83)

Basic Data Summary

FG (mean (SD)) FGA (mean (SD)) FG% (mean (SD)) 3P (mean (SD)) 3PA (mean (SD)) 3P% (mean (SD)) AST (mean (SD)) STL (mean (SD)) BLK (mean (SD)) TOV (mean (SD)) PF (mean (SD)) PTS (mean (SD))
ATL 3070.30 (508.37) 6924.80 (825.48) 0.44 (0.04) 383.27 (277.66) 1105.15 (751.77) 0.32 (0.06) 1791.01 (257.26) 680.74 (106.48) 411.63 (92.27) 1313.61 (195.71) 1903.14 (272.77) 8103.49 (1151.76)
BOS 3153.38 (608.61) 7101.68 (1075.32) 0.44 (0.05) 399.20 (271.42) 1137.72 (742.89) 0.34 (0.04) 1858.07 (363.49) 663.37 (96.13) 383.72 (86.66) 1315.76 (199.10) 1857.21 (230.01) 8201.21 (1391.84)
CHA 2995.52 (370.57) 6636.59 (720.03) 0.45 (0.02) 441.14 (223.21) 1243.03 (604.26) 0.35 (0.03) 1852.59 (260.47) 628.17 (103.64) 384.03 (69.48) 1158.83 (132.75) 1679.17 (224.48) 7980.97 (908.58)
CHI 3193.53 (359.70) 6984.83 (674.12) 0.46 (0.03) 343.52 (224.55) 979.55 (597.14) 0.33 (0.06) 1917.64 (224.34) 646.98 (88.55) 394.70 (67.34) 1317.35 (223.50) 1838.13 (235.89) 8265.28 (845.09)
CLE 3148.37 (371.90) 6895.78 (743.35) 0.46 (0.02) 384.43 (274.12) 1072.00 (724.17) 0.34 (0.05) 1869.02 (230.22) 624.85 (71.69) 397.54 (96.56) 1253.98 (166.16) 1802.61 (233.79) 8156.14 (800.95)
DAL 3146.67 (331.30) 6847.77 (599.29) 0.46 (0.02) 438.54 (264.72) 1240.97 (721.38) 0.34 (0.04) 1813.82 (240.33) 603.08 (69.70) 380.74 (63.30) 1157.33 (155.53) 1754.49 (220.89) 8292.36 (829.51)
DEN 3350.88 (445.17) 7258.87 (816.21) 0.46 (0.02) 321.04 (257.35) 953.02 (694.43) 0.31 (0.05) 1937.83 (321.36) 700.07 (121.94) 444.20 (86.30) 1348.12 (215.97) 1937.63 (230.95) 8788.00 (1019.78)
DET 3079.06 (554.17) 6984.46 (931.05) 0.44 (0.04) 361.45 (248.32) 1040.80 (676.36) 0.32 (0.05) 1727.14 (263.49) 637.85 (109.30) 398.85 (92.83) 1275.00 (253.42) 1875.13 (235.02) 8052.79 (1203.94)
GSW 3167.40 (620.72) 7169.23 (956.50) 0.44 (0.05) 433.45 (307.14) 1206.53 (762.44) 0.33 (0.05) 1812.63 (372.26) 718.59 (110.57) 414.87 (85.99) 1346.61 (187.43) 1865.42 (242.60) 8247.95 (1458.68)
HOU 3253.38 (386.19) 7059.29 (807.72) 0.46 (0.02) 492.02 (340.98) 1403.00 (927.60) 0.33 (0.05) 1902.98 (249.57) 657.09 (87.32) 417.80 (83.66) 1339.15 (194.01) 1824.08 (240.41) 8506.37 (825.36)
IND 3223.40 (393.49) 6993.12 (775.67) 0.46 (0.02) 350.96 (220.67) 1006.84 (577.89) 0.33 (0.05) 1861.29 (261.47) 666.72 (120.84) 409.09 (56.90) 1336.31 (191.35) 1904.77 (213.42) 8458.69 (843.27)
LAC 3208.82 (359.26) 6934.73 (644.54) 0.46 (0.02) 352.70 (251.46) 1028.85 (657.17) 0.32 (0.05) 1853.57 (254.84) 660.80 (103.79) 429.65 (76.23) 1361.74 (223.67) 1870.49 (206.59) 8308.71 (788.21)
LAL 3216.93 (533.64) 7047.69 (793.17) 0.45 (0.04) 397.15 (246.51) 1156.28 (682.82) 0.32 (0.06) 1894.76 (355.05) 677.61 (101.86) 447.33 (75.05) 1296.63 (224.79) 1810.45 (195.92) 8390.32 (1179.95)
MEM 2895.67 (316.54) 6451.50 (641.86) 0.45 (0.01) 450.33 (163.52) 1296.00 (455.67) 0.35 (0.02) 1693.38 (223.97) 643.38 (80.76) 399.17 (74.17) 1200.62 (134.35) 1706.79 (187.20) 7689.17 (838.67)
MIA 2967.87 (328.95) 6470.29 (682.35) 0.46 (0.02) 480.10 (204.58) 1350.90 (553.07) 0.35 (0.02) 1712.74 (196.02) 614.26 (83.18) 405.58 (62.19) 1220.26 (178.49) 1781.77 (245.45) 7871.10 (818.69)
MIL 3282.69 (394.62) 6995.51 (680.19) 0.47 (0.02) 379.15 (231.44) 1073.97 (626.92) 0.34 (0.04) 1951.35 (255.74) 691.72 (113.10) 395.41 (80.45) 1299.78 (201.87) 1894.73 (222.97) 8428.78 (834.30)
MIN 3031.57 (299.49) 6672.40 (584.98) 0.45 (0.01) 372.40 (176.86) 1089.30 (487.60) 0.34 (0.03) 1847.57 (214.75) 610.83 (84.94) 399.00 (72.78) 1179.90 (162.74) 1750.90 (214.04) 7954.87 (786.83)
NJN 3176.40 (392.90) 7021.29 (677.42) 0.45 (0.02) 315.14 (264.01) 938.63 (725.54) 0.31 (0.05) 1805.94 (246.07) 692.00 (128.76) 435.07 (106.66) 1378.54 (244.99) 1930.40 (266.14) 8295.40 (824.54)
NOH 3018.29 (295.93) 6682.35 (514.43) 0.45 (0.02) 548.29 (169.20) 1540.82 (471.74) 0.36 (0.02) 1762.00 (211.53) 604.24 (58.66) 384.47 (75.17) 1125.94 (81.61) 1657.82 (141.17) 7977.35 (778.37)
NYK 3049.22 (587.60) 6870.47 (935.40) 0.44 (0.04) 402.20 (253.22) 1146.12 (689.76) 0.34 (0.04) 1735.89 (354.50) 645.24 (106.88) 350.41 (75.19) 1320.63 (196.82) 1915.03 (264.70) 7954.90 (1316.47)
OKC 3277.12 (336.03) 7065.94 (720.98) 0.46 (0.02) 404.45 (249.50) 1144.38 (684.46) 0.34 (0.05) 1890.12 (229.24) 716.70 (127.91) 402.61 (75.30) 1321.96 (188.37) 1897.85 (231.22) 8547.33 (746.25)
ORL 3025.53 (342.34) 6635.53 (675.45) 0.46 (0.02) 517.47 (220.96) 1451.53 (590.67) 0.35 (0.02) 1751.17 (242.31) 604.67 (71.86) 384.23 (69.31) 1220.67 (136.78) 1715.90 (236.29) 8054.97 (876.04)
PHI 3124.44 (522.83) 7012.01 (900.01) 0.44 (0.04) 327.20 (241.55) 975.73 (681.18) 0.32 (0.04) 1796.84 (266.13) 712.74 (86.02) 444.24 (106.87) 1374.85 (240.37) 1866.73 (239.09) 8253.84 (1171.70)
PHO 3343.47 (335.39) 7078.53 (628.76) 0.47 (0.02) 412.55 (267.35) 1161.08 (704.60) 0.33 (0.05) 2019.41 (257.41) 687.83 (120.12) 395.65 (67.59) 1358.43 (246.22) 1864.35 (224.91) 8687.27 (818.06)
POR 3257.51 (384.89) 6984.41 (701.97) 0.47 (0.02) 391.50 (258.22) 1109.97 (684.08) 0.33 (0.06) 1914.29 (259.05) 666.41 (118.46) 403.39 (53.52) 1323.61 (239.78) 1849.53 (238.99) 8471.57 (885.25)
SAC 3157.23 (509.71) 7019.83 (832.66) 0.45 (0.03) 373.48 (227.03) 1053.67 (597.75) 0.33 (0.05) 1854.15 (272.21) 672.85 (93.68) 374.96 (65.05) 1342.78 (197.03) 1915.52 (252.62) 8247.46 (1141.10)
SAS 3306.92 (407.50) 6968.52 (766.57) 0.47 (0.02) 321.49 (249.86) 892.57 (628.14) 0.33 (0.06) 1915.98 (278.52) 653.93 (110.40) 463.37 (91.99) 1306.88 (226.79) 1813.58 (294.27) 8592.27 (925.93)
TOR 2958.46 (359.04) 6568.75 (677.11) 0.45 (0.02) 550.17 (191.33) 1524.00 (508.61) 0.36 (0.02) 1729.17 (227.96) 606.25 (87.52) 411.42 (91.87) 1130.08 (143.40) 1749.54 (178.95) 7925.75 (984.27)
UTA 3156.11 (344.55) 6677.38 (670.47) 0.47 (0.02) 308.15 (233.35) 880.75 (635.06) 0.33 (0.04) 1986.71 (247.32) 670.29 (81.73) 450.04 (101.36) 1348.71 (204.85) 1914.16 (215.83) 8301.36 (771.99)
WAS 3284.17 (356.45) 7211.33 (768.70) 0.46 (0.02) 332.12 (242.25) 972.02 (642.85) 0.31 (0.06) 1825.72 (237.61) 647.72 (82.04) 404.37 (84.29) 1295.04 (182.54) 1852.90 (181.92) 8429.12 (810.86)

Plots

First I looked at raw assist numbers by team and season:

I forgot about the lockout seasons in 1998 and 2011, so I’ll have to look at percentages or exclude those years. However, this is a good check that my data scraping function worked correctly. It does look like there could be an overall sinusoid trend though, which is interesting.

Next, I plotted the percentage of baskets assisted. This time I also split the plot into individual teams:

These plots look a little bit flatter to me, but it still looks like there’s an up and down trend. It would be worth checking for at least a cubic effect of time. Two random interesting things that stood out to me are the assist trends for the Utah Jazz and Golden State Warriors:

Golden State has a sudden increase in assist percentage around 2012, which is close to when they began their dominant run. The numbers peak in 2016, when Stephen Curry was the unanimous MVP. In Utah, the percentage of assisted baskets is consistently high from about 1985 to the early 2000s, which corresponds with the career of John Stockton (the NBA’s all-time leader in assists).

Because line graphs can be messy and hard to read, I plotted using Loess smoothing as well:

These are a little messy as well, but the cubic trend is pretty obvious in the league-wide plot.

Models

I’m starting out with a very basic model, to see if overall passing has has changed since 2013. This model has a random intercept for team, but I’d like to check whether or not I should include an AR(1) structure for the repeated measures as well. These models are adjusted for minutes played, since that likely has a large effect on total passes.

passing_mod <- lme(Passes.Made ~ poly(Season,3) + Min, random = ~1|Team,
                   data = passing)
passing_mod_ar1 <- lme(Passes.Made ~ poly(Season,3) + Min, random = ~1|Team,
                       data = passing,correlation = corAR1())

The model with an AR(1) structure is better by AIC and the residuals look better as well. There still appears to be a pattern in the residuals for the model with random intercept only. It might be there in the AR(1) model residuals as well, but they look a little better.

df AIC
passing_mod 7 3097.662
passing_mod_ar1 8 3059.728

I wanted to try a locally smoothed model as well

passing_loess <- loess(Passes.Made ~ Season + Min, data = passing, span = 0.28)